//
//  Math.h
//  HTMAnimations
//
//  Created by Ting Han on 2017/9/18.
//  Copyright © 2017年 Ting Han. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/**
 一元一次方程
 */
struct MATHPoint {
    CGFloat x;
    CGFloat y;
};
typedef struct MATHPoint MATHPoint;
static inline MATHPoint MATHPointMake(CGFloat x,CGFloat y){
    MATHPoint p;
    p.x = x;
    p.y = y;
    return p;
}

@interface Math : NSObject

/*
 弧度转为角度
 */
+ (CGFloat)degreeFromRadian:(CGFloat)radian;
/*
 角度转为弧度
 */
+ (CGFloat)radianFromDegree:(CGFloat)degree;

/*
 计算弧度 (A,B)->(0,0)的方向角
 */
+ (CGFloat)radianValueFromTanSideA:(CGFloat)sideA ToSideB:(CGFloat)sideB;

#pragma mark --- 计算斜线： Y = kX+b
@property (nonatomic) CGFloat k;
@property (nonatomic) CGFloat b;

/*
 一元一次线性方程
 */
+ (instancetype)mathOnceLinearEquationWithPointA:(MATHPoint)pointA PointB:(MATHPoint)pointB;
/*
 当y=value时，x= ？
 */
- (CGFloat)xValueWhenYEqual:(CGFloat)yValue;
/*
 当x=value时，y= ？
 */
- (CGFloat)yValueWhenXEqual:(CGFloat)xValue;

#pragma mark --- 按比例设置size

/**
 按照既有size的比例，和width重新设置size
 */
+ (CGSize)resetFromSize:(CGSize)size withFixedWidth:(CGFloat)width;
/**
 按照既有size的比例，和height重新设置size
 */
+ (CGSize)resetFromSize:(CGSize)size withFixedHeight:(CGFloat)height;


@end
